package com.example.app03_activity_lifecycle;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import javax.security.auth.login.LoginException;

/**
 * 入口主界面
 * 演示Activity生命周期
 * <p>
 * Activity 状态
 * <li> 运行状态
 * <li> 暂停状态
 * <li> 停止状态
 * <li> 死亡状态
 * <p>
 * 1 从死亡状态到运行状态，启动App
 *      onCreate() --> onStart() --> onResume()
 * 2 从运行状态到死亡状态，在主屏状态下按下返回键
 *      onPause() --> onStop() --> onDestroy()
 * 3 从运行状态到停止状态，按下 Home 键
 *      onPause() --> onStop()
 * 4 从停止状态到运行状态，在任务管理列表中找到应用并重新显示
 *      onRestart()  --> onStart() --> onResume()
 * 5 从运行状态到暂停状态，在当前Activity打开Dialog类型的Activity
 *      onPause()
 * 6 从暂停状态到运行状态，显示Dialog后按下返回键
 *      onResume()
 *
 * @author lijiguo
 */
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    
    public MainActivity() {
        Log.i(TAG, TAG + "----> MainActivity()");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, TAG + "----> onCreate()");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, TAG + "----> onStart()");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, TAG + "----> onResume()");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG, TAG + "----> onPause()");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, TAG + "----> onStop()");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG, TAG + "----> onDestroy()");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, TAG + "----> onRestart()");
    }

    /**
     * 启动另一个Activity
     * @param view 发生事件的视图对象
     */
    public void startOtherActivity(View view) {
        Intent otherIntent = new Intent(this, OtherActivity.class);
        startActivity(otherIntent);
    }
}